nonlin_multi_var Module



Interfaces

interface

  • public function fcnnvar(x, args) result(f)

    Describes a function of N variables.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in), dimension(:) :: x

    An N-element array containing the independent variables.

    class(*), intent(inout), optional :: args

    An optional argument to allow the user to communicate with the routine.

    Return Value real(kind=real64)

    The value of the function.

interface

  • public subroutine gradientfcn(x, g, args)

    Describes a routine capable of computing the gradient vector of an equation of N variables.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in), dimension(:) :: x

    An N-element array containing the independent variables.

    real(kind=real64), intent(out), dimension(:) :: g

    An N-element array where the gradient vector will be written as output.

    class(*), intent(inout), optional :: args

    An optional argument to allow the user to communicate with the routine.

interface

  • public subroutine nonlin_optimize_fcn(this, fcn, x, fout, ib, args)

    Describes the interface of a routine for optimizing an equation of N variables.

    Arguments

    Type IntentOptional Attributes Name
    class(equation_optimizer), intent(inout) :: this

    The equation_optimizer object.

    class(fcnnvar_helper), intent(in) :: fcn

    The fcnnvar_helper object containing the equation to optimize.

    real(kind=real64), intent(inout), dimension(:) :: x

    On input, the initial guess at the optimal point. On output, the updated optimal point estimate.

    real(kind=real64), intent(out), optional :: fout

    An optional output, that if provided, returns the value of the function at x.

    type(iteration_behavior), optional :: ib

    An optional output, that if provided, allows the caller to obtain iteration performance statistics.

    class(*), intent(inout), optional :: args

    An optional argument to allow the user to communicate with the routine.


Derived Types

type, public, abstract ::  equation_optimizer

A base class for optimization of an equation of multiple variables.

Type-Bound Procedures

procedure, public :: get_max_fcn_evals => oe_get_max_eval
procedure, public :: get_print_status => oe_get_print_status
procedure, public :: get_tolerance => oe_get_tol
procedure, public :: set_max_fcn_evals => oe_set_max_eval
procedure, public :: set_print_status => oe_set_print_status
procedure, public :: set_tolerance => oe_set_tol
procedure(nonlin_optimize_fcn), public, deferred, pass :: solve

type, public ::  fcnnvar_helper

Defines a type capable of encapsulating an equation of N variables.

Type-Bound Procedures

procedure, public :: fcn => fnh_fcn
procedure, public :: get_variable_count => fnh_get_nvar
procedure, public :: gradient => fnh_grad_fcn
procedure, public :: is_fcn_defined => fnh_is_fcn_defined
procedure, public :: is_gradient_defined => fnh_is_grad_defined
procedure, public :: set_fcn => fnh_set_fcn
procedure, public :: set_gradient_fcn => fnh_set_grad